/*
 * Powered By [rapid-framework]
 * Web Site: http://www.rapid-framework.org.cn
 * Google Code: http://code.google.com/p/rapid-framework/
 * Since 2008 - 2019
 */

package net.dreamlu.db.qo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Order;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.hibernate.criterion.MatchMode;
import org.springframework.data.jpa.domain.Specification;
import net.dreamlu.db.po.*;
/**
 *
 * @author lambert.wang email:lambert.wang(a)crediteyes.com
 * @version 1.0
 * @since 1.0
 */
public class BlogQuery extends Blog implements Serializable {
    private static final long serialVersionUID = 3148176768559230877L;
    

	/** id */
	private java.lang.Long id;	
	private java.lang.Long notEqId;	
	/** 内容 */
	private String likeContentWithStart;
	private String likeContentWithEnd;
	private String likeContentWithExact;
	private String likeContentWithAnywhere;
	private java.lang.String content;	
	private java.lang.String notEqContent;	
	/** 创建时间 */
	private java.time.LocalDateTime createTimeBegin;
	private java.time.LocalDateTime createTimeEnd;	
	private java.time.LocalDateTime createTime;	
	private java.time.LocalDateTime notEqCreateTime;	
	/** featured */
	private java.lang.Integer featured;	
	private java.lang.Integer notEqFeatured;	
	/** privacy */
	private java.lang.Integer privacy;	
	private java.lang.Integer notEqPrivacy;	
	/** status */
	private java.lang.Integer status;	
	private java.lang.Integer notEqStatus;	
	/** summary */
	private String likeSummaryWithStart;
	private String likeSummaryWithEnd;
	private String likeSummaryWithExact;
	private String likeSummaryWithAnywhere;
	private java.lang.String summary;	
	private java.lang.String notEqSummary;	
	/** tags */
	private String likeTagsWithStart;
	private String likeTagsWithEnd;
	private String likeTagsWithExact;
	private String likeTagsWithAnywhere;
	private java.lang.String tags;	
	private java.lang.String notEqTags;	
	/** title */
	private String likeTitleWithStart;
	private String likeTitleWithEnd;
	private String likeTitleWithExact;
	private String likeTitleWithAnywhere;
	private java.lang.String title;	
	private java.lang.String notEqTitle;	
	/** views */
	private java.lang.Integer views;	
	private java.lang.Integer notEqViews;	
	/** authorId */
	private java.lang.Long authorId;	
	private java.lang.Long notEqAuthorId;	
	/** categoryId */
	private java.lang.Integer categoryId;	
	private java.lang.Integer notEqCategoryId;	
	
	/*********** 系统属性，自动赋值 *********/
	private boolean isId;
	private boolean isNotEqId;
	private MatchMode likecontent;
	private boolean isContent;
	private boolean isNotEqContent;
	private boolean isCreateTimeBegin;
	private boolean isCreateTimeEnd;
	private boolean isCreateTime;
	private boolean isNotEqCreateTime;
	private boolean isFeatured;
	private boolean isNotEqFeatured;
	private boolean isPrivacy;
	private boolean isNotEqPrivacy;
	private boolean isStatus;
	private boolean isNotEqStatus;
	private MatchMode likesummary;
	private boolean isSummary;
	private boolean isNotEqSummary;
	private MatchMode liketags;
	private boolean isTags;
	private boolean isNotEqTags;
	private MatchMode liketitle;
	private boolean isTitle;
	private boolean isNotEqTitle;
	private boolean isViews;
	private boolean isNotEqViews;
	private boolean isAuthorId;
	private boolean isNotEqAuthorId;
	private boolean isCategoryId;
	private boolean isNotEqCategoryId;
	private java.lang.Long ltCriterionId;
	public void setLtId(java.lang.Long id){
		ltCriterionId = id;
	}
	public java.lang.Long getLtId(){
		return ltCriterionId;
	}
	private java.lang.Long leCriterionId;
	public void setLeId(java.lang.Long id){
		leCriterionId = id;
	}
	public java.lang.Long getLeId(){
		return leCriterionId;
	}
	private java.lang.Long gtCriterionId;
	public void setGtId(java.lang.Long id){
		gtCriterionId = id;
	}
	public java.lang.Long getGtId(){
		return gtCriterionId;
	}
	private java.lang.Long geCriterionId;
	public void setGeId(java.lang.Long id){
		geCriterionId = id;
	}
	public java.lang.Long getGeId(){
		return geCriterionId;
	}
	public java.lang.Long getId() {
		return this.id;
	}
	
	public void setId(java.lang.Long value) {		
		this.id = value;
		this.isId = true;
	}
	public boolean hasId() {
		return this.isId;
	}
	public java.lang.Long getNotEqId() {
		return this.notEqId;
	}
	public void setNotEqId(java.lang.Long id) {
		this.notEqId = id;
		this.isNotEqId = true;
	}
	public boolean hasNotEqId() {
		return this.isNotEqId;
	}
	// IN or notIN
	private List<java.lang.Long>	inCriterionId;
	private List<java.lang.Long>	notInCriterionId;
	public void setInId(boolean isIn,List<java.lang.Long> ids){
		if(isIn){
			inCriterionId = ids;
		}else{
			notInCriterionId = ids;
		}
	}
	public List<java.lang.Long> getInId() {
		return inCriterionId;
	}
	public List<java.lang.Long> getNotInId() {
		return notInCriterionId;
	}
	
	//Null or NotNull
	private Boolean nullCriterionId;
	public void setNullId(boolean isNull){
			nullCriterionId = isNull;
	}
	public Boolean getNullId(){
		return nullCriterionId;
	} 
	
	public MatchMode getLikeContent() {
		return this.likecontent;
	}
	public String getLikeContentWithStart() {
		return this.likeContentWithStart;
	}
	public void setLikeContentWithStart(String content) {	
		setContent(content);
		setLikeContent(MatchMode.START);
	}
	public String getLikeContentWithEnd() {
		return this.likeContentWithEnd;
	}
	public void setLikeContentWithEnd(String content) {	
		setContent(content);
		setLikeContent(MatchMode.END);
	}
	public String getLikeContentWithExact() {
		return this.likeContentWithExact;
	}
	public void setLikeContentWithExact(String content) {	
		setContent(content);
		setLikeContent(MatchMode.EXACT);
	}
	public String getLikeContentWithAnywhere() {
		return this.likeContentWithAnywhere;
	}
	public void setLikeContentWithAnywhere(String content) {	
		setContent(content);
		setLikeContent(MatchMode.ANYWHERE);
	}
	private void setLikeContent(MatchMode matchMode) {		
		this.likecontent = matchMode;
	}
	public java.lang.String getContent() {
		return this.content;
	}
	
	public void setContent(java.lang.String value) {		
		this.content = value;
		this.isContent = true;
	}
	public boolean hasContent() {
		return this.isContent;
	}
	public java.lang.String getNotEqContent() {
		return this.notEqContent;
	}
	public void setNotEqContent(java.lang.String content) {
		this.notEqContent = content;
		this.isNotEqContent = true;
	}
	public boolean hasNotEqContent() {
		return this.isNotEqContent;
	}
	// IN or notIN
	private List<java.lang.String>	inCriterionContent;
	private List<java.lang.String>	notInCriterionContent;
	public void setInContent(boolean isIn,List<java.lang.String> contents){
		if(isIn){
			inCriterionContent = contents;
		}else{
			notInCriterionContent = contents;
		}
	}
	public List<java.lang.String> getInContent() {
		return inCriterionContent;
	}
	public List<java.lang.String> getNotInContent() {
		return notInCriterionContent;
	}
	
	//Null or NotNull
	private Boolean nullCriterionContent;
	public void setNullContent(boolean isNull){
			nullCriterionContent = isNull;
	}
	public Boolean getNullContent(){
		return nullCriterionContent;
	} 
	
	public java.time.LocalDateTime getCreateTimeBegin() {
		return this.createTimeBegin;
	}
	
	public void setCreateTimeBegin(java.time.LocalDateTime value) {
		this.createTimeBegin = value;
		this.isCreateTimeBegin = true;
	}	
	
	public java.time.LocalDateTime getCreateTimeEnd() {
		return this.createTimeEnd;
	}
	
	public void setCreateTimeEnd(java.time.LocalDateTime value) {
		this.createTimeEnd = value;
		this.isCreateTimeEnd = true;
	}
	public boolean hasCreateTimeBegin() {
		return this.isCreateTimeBegin;
	}
	public boolean hasCreateTimeEnd() {
		return this.isCreateTimeEnd;
	}	
	public java.time.LocalDateTime getCreateTime() {
		return this.createTime;
	}
	
	public void setCreateTime(java.time.LocalDateTime value) {		
		this.createTime = value;
		this.isCreateTime = true;
	}
	public boolean hasCreateTime() {
		return this.isCreateTime;
	}
	public java.time.LocalDateTime getNotEqCreateTime() {
		return this.notEqCreateTime;
	}
	public void setNotEqCreateTime(java.time.LocalDateTime createTime) {
		this.notEqCreateTime = createTime;
		this.isNotEqCreateTime = true;
	}
	public boolean hasNotEqCreateTime() {
		return this.isNotEqCreateTime;
	}
	// IN or notIN
	private List<java.time.LocalDateTime>	inCriterionCreateTime;
	private List<java.time.LocalDateTime>	notInCriterionCreateTime;
	public void setInCreateTime(boolean isIn,List<java.time.LocalDateTime> createTimes){
		if(isIn){
			inCriterionCreateTime = createTimes;
		}else{
			notInCriterionCreateTime = createTimes;
		}
	}
	public List<java.time.LocalDateTime> getInCreateTime() {
		return inCriterionCreateTime;
	}
	public List<java.time.LocalDateTime> getNotInCreateTime() {
		return notInCriterionCreateTime;
	}
	
	//Null or NotNull
	private Boolean nullCriterionCreateTime;
	public void setNullCreateTime(boolean isNull){
			nullCriterionCreateTime = isNull;
	}
	public Boolean getNullCreateTime(){
		return nullCriterionCreateTime;
	} 
	
	private java.lang.Integer ltCriterionFeatured;
	public void setLtFeatured(java.lang.Integer featured){
		ltCriterionFeatured = featured;
	}
	public java.lang.Integer getLtFeatured(){
		return ltCriterionFeatured;
	}
	private java.lang.Integer leCriterionFeatured;
	public void setLeFeatured(java.lang.Integer featured){
		leCriterionFeatured = featured;
	}
	public java.lang.Integer getLeFeatured(){
		return leCriterionFeatured;
	}
	private java.lang.Integer gtCriterionFeatured;
	public void setGtFeatured(java.lang.Integer featured){
		gtCriterionFeatured = featured;
	}
	public java.lang.Integer getGtFeatured(){
		return gtCriterionFeatured;
	}
	private java.lang.Integer geCriterionFeatured;
	public void setGeFeatured(java.lang.Integer featured){
		geCriterionFeatured = featured;
	}
	public java.lang.Integer getGeFeatured(){
		return geCriterionFeatured;
	}
	public java.lang.Integer getFeatured() {
		return this.featured;
	}
	
	public void setFeatured(java.lang.Integer value) {		
		this.featured = value;
		this.isFeatured = true;
	}
	public boolean hasFeatured() {
		return this.isFeatured;
	}
	public java.lang.Integer getNotEqFeatured() {
		return this.notEqFeatured;
	}
	public void setNotEqFeatured(java.lang.Integer featured) {
		this.notEqFeatured = featured;
		this.isNotEqFeatured = true;
	}
	public boolean hasNotEqFeatured() {
		return this.isNotEqFeatured;
	}
	// IN or notIN
	private List<java.lang.Integer>	inCriterionFeatured;
	private List<java.lang.Integer>	notInCriterionFeatured;
	public void setInFeatured(boolean isIn,List<java.lang.Integer> featureds){
		if(isIn){
			inCriterionFeatured = featureds;
		}else{
			notInCriterionFeatured = featureds;
		}
	}
	public List<java.lang.Integer> getInFeatured() {
		return inCriterionFeatured;
	}
	public List<java.lang.Integer> getNotInFeatured() {
		return notInCriterionFeatured;
	}
	
	//Null or NotNull
	private Boolean nullCriterionFeatured;
	public void setNullFeatured(boolean isNull){
			nullCriterionFeatured = isNull;
	}
	public Boolean getNullFeatured(){
		return nullCriterionFeatured;
	} 
	
	private java.lang.Integer ltCriterionPrivacy;
	public void setLtPrivacy(java.lang.Integer privacy){
		ltCriterionPrivacy = privacy;
	}
	public java.lang.Integer getLtPrivacy(){
		return ltCriterionPrivacy;
	}
	private java.lang.Integer leCriterionPrivacy;
	public void setLePrivacy(java.lang.Integer privacy){
		leCriterionPrivacy = privacy;
	}
	public java.lang.Integer getLePrivacy(){
		return leCriterionPrivacy;
	}
	private java.lang.Integer gtCriterionPrivacy;
	public void setGtPrivacy(java.lang.Integer privacy){
		gtCriterionPrivacy = privacy;
	}
	public java.lang.Integer getGtPrivacy(){
		return gtCriterionPrivacy;
	}
	private java.lang.Integer geCriterionPrivacy;
	public void setGePrivacy(java.lang.Integer privacy){
		geCriterionPrivacy = privacy;
	}
	public java.lang.Integer getGePrivacy(){
		return geCriterionPrivacy;
	}
	public java.lang.Integer getPrivacy() {
		return this.privacy;
	}
	
	public void setPrivacy(java.lang.Integer value) {		
		this.privacy = value;
		this.isPrivacy = true;
	}
	public boolean hasPrivacy() {
		return this.isPrivacy;
	}
	public java.lang.Integer getNotEqPrivacy() {
		return this.notEqPrivacy;
	}
	public void setNotEqPrivacy(java.lang.Integer privacy) {
		this.notEqPrivacy = privacy;
		this.isNotEqPrivacy = true;
	}
	public boolean hasNotEqPrivacy() {
		return this.isNotEqPrivacy;
	}
	// IN or notIN
	private List<java.lang.Integer>	inCriterionPrivacy;
	private List<java.lang.Integer>	notInCriterionPrivacy;
	public void setInPrivacy(boolean isIn,List<java.lang.Integer> privacys){
		if(isIn){
			inCriterionPrivacy = privacys;
		}else{
			notInCriterionPrivacy = privacys;
		}
	}
	public List<java.lang.Integer> getInPrivacy() {
		return inCriterionPrivacy;
	}
	public List<java.lang.Integer> getNotInPrivacy() {
		return notInCriterionPrivacy;
	}
	
	//Null or NotNull
	private Boolean nullCriterionPrivacy;
	public void setNullPrivacy(boolean isNull){
			nullCriterionPrivacy = isNull;
	}
	public Boolean getNullPrivacy(){
		return nullCriterionPrivacy;
	} 
	
	private java.lang.Integer ltCriterionStatus;
	public void setLtStatus(java.lang.Integer status){
		ltCriterionStatus = status;
	}
	public java.lang.Integer getLtStatus(){
		return ltCriterionStatus;
	}
	private java.lang.Integer leCriterionStatus;
	public void setLeStatus(java.lang.Integer status){
		leCriterionStatus = status;
	}
	public java.lang.Integer getLeStatus(){
		return leCriterionStatus;
	}
	private java.lang.Integer gtCriterionStatus;
	public void setGtStatus(java.lang.Integer status){
		gtCriterionStatus = status;
	}
	public java.lang.Integer getGtStatus(){
		return gtCriterionStatus;
	}
	private java.lang.Integer geCriterionStatus;
	public void setGeStatus(java.lang.Integer status){
		geCriterionStatus = status;
	}
	public java.lang.Integer getGeStatus(){
		return geCriterionStatus;
	}
	public java.lang.Integer getStatus() {
		return this.status;
	}
	
	public void setStatus(java.lang.Integer value) {		
		this.status = value;
		this.isStatus = true;
	}
	public boolean hasStatus() {
		return this.isStatus;
	}
	public java.lang.Integer getNotEqStatus() {
		return this.notEqStatus;
	}
	public void setNotEqStatus(java.lang.Integer status) {
		this.notEqStatus = status;
		this.isNotEqStatus = true;
	}
	public boolean hasNotEqStatus() {
		return this.isNotEqStatus;
	}
	// IN or notIN
	private List<java.lang.Integer>	inCriterionStatus;
	private List<java.lang.Integer>	notInCriterionStatus;
	public void setInStatus(boolean isIn,List<java.lang.Integer> statuss){
		if(isIn){
			inCriterionStatus = statuss;
		}else{
			notInCriterionStatus = statuss;
		}
	}
	public List<java.lang.Integer> getInStatus() {
		return inCriterionStatus;
	}
	public List<java.lang.Integer> getNotInStatus() {
		return notInCriterionStatus;
	}
	
	//Null or NotNull
	private Boolean nullCriterionStatus;
	public void setNullStatus(boolean isNull){
			nullCriterionStatus = isNull;
	}
	public Boolean getNullStatus(){
		return nullCriterionStatus;
	} 
	
	public MatchMode getLikeSummary() {
		return this.likesummary;
	}
	public String getLikeSummaryWithStart() {
		return this.likeSummaryWithStart;
	}
	public void setLikeSummaryWithStart(String summary) {	
		setSummary(summary);
		setLikeSummary(MatchMode.START);
	}
	public String getLikeSummaryWithEnd() {
		return this.likeSummaryWithEnd;
	}
	public void setLikeSummaryWithEnd(String summary) {	
		setSummary(summary);
		setLikeSummary(MatchMode.END);
	}
	public String getLikeSummaryWithExact() {
		return this.likeSummaryWithExact;
	}
	public void setLikeSummaryWithExact(String summary) {	
		setSummary(summary);
		setLikeSummary(MatchMode.EXACT);
	}
	public String getLikeSummaryWithAnywhere() {
		return this.likeSummaryWithAnywhere;
	}
	public void setLikeSummaryWithAnywhere(String summary) {	
		setSummary(summary);
		setLikeSummary(MatchMode.ANYWHERE);
	}
	private void setLikeSummary(MatchMode matchMode) {		
		this.likesummary = matchMode;
	}
	public java.lang.String getSummary() {
		return this.summary;
	}
	
	public void setSummary(java.lang.String value) {		
		this.summary = value;
		this.isSummary = true;
	}
	public boolean hasSummary() {
		return this.isSummary;
	}
	public java.lang.String getNotEqSummary() {
		return this.notEqSummary;
	}
	public void setNotEqSummary(java.lang.String summary) {
		this.notEqSummary = summary;
		this.isNotEqSummary = true;
	}
	public boolean hasNotEqSummary() {
		return this.isNotEqSummary;
	}
	// IN or notIN
	private List<java.lang.String>	inCriterionSummary;
	private List<java.lang.String>	notInCriterionSummary;
	public void setInSummary(boolean isIn,List<java.lang.String> summarys){
		if(isIn){
			inCriterionSummary = summarys;
		}else{
			notInCriterionSummary = summarys;
		}
	}
	public List<java.lang.String> getInSummary() {
		return inCriterionSummary;
	}
	public List<java.lang.String> getNotInSummary() {
		return notInCriterionSummary;
	}
	
	//Null or NotNull
	private Boolean nullCriterionSummary;
	public void setNullSummary(boolean isNull){
			nullCriterionSummary = isNull;
	}
	public Boolean getNullSummary(){
		return nullCriterionSummary;
	} 
	
	public MatchMode getLikeTags() {
		return this.liketags;
	}
	public String getLikeTagsWithStart() {
		return this.likeTagsWithStart;
	}
	public void setLikeTagsWithStart(String tags) {	
		setTags(tags);
		setLikeTags(MatchMode.START);
	}
	public String getLikeTagsWithEnd() {
		return this.likeTagsWithEnd;
	}
	public void setLikeTagsWithEnd(String tags) {	
		setTags(tags);
		setLikeTags(MatchMode.END);
	}
	public String getLikeTagsWithExact() {
		return this.likeTagsWithExact;
	}
	public void setLikeTagsWithExact(String tags) {	
		setTags(tags);
		setLikeTags(MatchMode.EXACT);
	}
	public String getLikeTagsWithAnywhere() {
		return this.likeTagsWithAnywhere;
	}
	public void setLikeTagsWithAnywhere(String tags) {	
		setTags(tags);
		setLikeTags(MatchMode.ANYWHERE);
	}
	private void setLikeTags(MatchMode matchMode) {		
		this.liketags = matchMode;
	}
	public java.lang.String getTags() {
		return this.tags;
	}
	
	public void setTags(java.lang.String value) {		
		this.tags = value;
		this.isTags = true;
	}
	public boolean hasTags() {
		return this.isTags;
	}
	public java.lang.String getNotEqTags() {
		return this.notEqTags;
	}
	public void setNotEqTags(java.lang.String tags) {
		this.notEqTags = tags;
		this.isNotEqTags = true;
	}
	public boolean hasNotEqTags() {
		return this.isNotEqTags;
	}
	// IN or notIN
	private List<java.lang.String>	inCriterionTags;
	private List<java.lang.String>	notInCriterionTags;
	public void setInTags(boolean isIn,List<java.lang.String> tagss){
		if(isIn){
			inCriterionTags = tagss;
		}else{
			notInCriterionTags = tagss;
		}
	}
	public List<java.lang.String> getInTags() {
		return inCriterionTags;
	}
	public List<java.lang.String> getNotInTags() {
		return notInCriterionTags;
	}
	
	//Null or NotNull
	private Boolean nullCriterionTags;
	public void setNullTags(boolean isNull){
			nullCriterionTags = isNull;
	}
	public Boolean getNullTags(){
		return nullCriterionTags;
	} 
	
	public MatchMode getLikeTitle() {
		return this.liketitle;
	}
	public String getLikeTitleWithStart() {
		return this.likeTitleWithStart;
	}
	public void setLikeTitleWithStart(String title) {	
		setTitle(title);
		setLikeTitle(MatchMode.START);
	}
	public String getLikeTitleWithEnd() {
		return this.likeTitleWithEnd;
	}
	public void setLikeTitleWithEnd(String title) {	
		setTitle(title);
		setLikeTitle(MatchMode.END);
	}
	public String getLikeTitleWithExact() {
		return this.likeTitleWithExact;
	}
	public void setLikeTitleWithExact(String title) {	
		setTitle(title);
		setLikeTitle(MatchMode.EXACT);
	}
	public String getLikeTitleWithAnywhere() {
		return this.likeTitleWithAnywhere;
	}
	public void setLikeTitleWithAnywhere(String title) {	
		setTitle(title);
		setLikeTitle(MatchMode.ANYWHERE);
	}
	private void setLikeTitle(MatchMode matchMode) {		
		this.liketitle = matchMode;
	}
	public java.lang.String getTitle() {
		return this.title;
	}
	
	public void setTitle(java.lang.String value) {		
		this.title = value;
		this.isTitle = true;
	}
	public boolean hasTitle() {
		return this.isTitle;
	}
	public java.lang.String getNotEqTitle() {
		return this.notEqTitle;
	}
	public void setNotEqTitle(java.lang.String title) {
		this.notEqTitle = title;
		this.isNotEqTitle = true;
	}
	public boolean hasNotEqTitle() {
		return this.isNotEqTitle;
	}
	// IN or notIN
	private List<java.lang.String>	inCriterionTitle;
	private List<java.lang.String>	notInCriterionTitle;
	public void setInTitle(boolean isIn,List<java.lang.String> titles){
		if(isIn){
			inCriterionTitle = titles;
		}else{
			notInCriterionTitle = titles;
		}
	}
	public List<java.lang.String> getInTitle() {
		return inCriterionTitle;
	}
	public List<java.lang.String> getNotInTitle() {
		return notInCriterionTitle;
	}
	
	//Null or NotNull
	private Boolean nullCriterionTitle;
	public void setNullTitle(boolean isNull){
			nullCriterionTitle = isNull;
	}
	public Boolean getNullTitle(){
		return nullCriterionTitle;
	} 
	
	private java.lang.Integer ltCriterionViews;
	public void setLtViews(java.lang.Integer views){
		ltCriterionViews = views;
	}
	public java.lang.Integer getLtViews(){
		return ltCriterionViews;
	}
	private java.lang.Integer leCriterionViews;
	public void setLeViews(java.lang.Integer views){
		leCriterionViews = views;
	}
	public java.lang.Integer getLeViews(){
		return leCriterionViews;
	}
	private java.lang.Integer gtCriterionViews;
	public void setGtViews(java.lang.Integer views){
		gtCriterionViews = views;
	}
	public java.lang.Integer getGtViews(){
		return gtCriterionViews;
	}
	private java.lang.Integer geCriterionViews;
	public void setGeViews(java.lang.Integer views){
		geCriterionViews = views;
	}
	public java.lang.Integer getGeViews(){
		return geCriterionViews;
	}
	public java.lang.Integer getViews() {
		return this.views;
	}
	
	public void setViews(java.lang.Integer value) {		
		this.views = value;
		this.isViews = true;
	}
	public boolean hasViews() {
		return this.isViews;
	}
	public java.lang.Integer getNotEqViews() {
		return this.notEqViews;
	}
	public void setNotEqViews(java.lang.Integer views) {
		this.notEqViews = views;
		this.isNotEqViews = true;
	}
	public boolean hasNotEqViews() {
		return this.isNotEqViews;
	}
	// IN or notIN
	private List<java.lang.Integer>	inCriterionViews;
	private List<java.lang.Integer>	notInCriterionViews;
	public void setInViews(boolean isIn,List<java.lang.Integer> viewss){
		if(isIn){
			inCriterionViews = viewss;
		}else{
			notInCriterionViews = viewss;
		}
	}
	public List<java.lang.Integer> getInViews() {
		return inCriterionViews;
	}
	public List<java.lang.Integer> getNotInViews() {
		return notInCriterionViews;
	}
	
	//Null or NotNull
	private Boolean nullCriterionViews;
	public void setNullViews(boolean isNull){
			nullCriterionViews = isNull;
	}
	public Boolean getNullViews(){
		return nullCriterionViews;
	} 
	
	private java.lang.Long ltCriterionAuthorId;
	public void setLtAuthorId(java.lang.Long authorId){
		ltCriterionAuthorId = authorId;
	}
	public java.lang.Long getLtAuthorId(){
		return ltCriterionAuthorId;
	}
	private java.lang.Long leCriterionAuthorId;
	public void setLeAuthorId(java.lang.Long authorId){
		leCriterionAuthorId = authorId;
	}
	public java.lang.Long getLeAuthorId(){
		return leCriterionAuthorId;
	}
	private java.lang.Long gtCriterionAuthorId;
	public void setGtAuthorId(java.lang.Long authorId){
		gtCriterionAuthorId = authorId;
	}
	public java.lang.Long getGtAuthorId(){
		return gtCriterionAuthorId;
	}
	private java.lang.Long geCriterionAuthorId;
	public void setGeAuthorId(java.lang.Long authorId){
		geCriterionAuthorId = authorId;
	}
	public java.lang.Long getGeAuthorId(){
		return geCriterionAuthorId;
	}
	public java.lang.Long getAuthorId() {
		return this.authorId;
	}
	
	public void setAuthorId(java.lang.Long value) {		
		this.authorId = value;
		this.isAuthorId = true;
	}
	public boolean hasAuthorId() {
		return this.isAuthorId;
	}
	public java.lang.Long getNotEqAuthorId() {
		return this.notEqAuthorId;
	}
	public void setNotEqAuthorId(java.lang.Long authorId) {
		this.notEqAuthorId = authorId;
		this.isNotEqAuthorId = true;
	}
	public boolean hasNotEqAuthorId() {
		return this.isNotEqAuthorId;
	}
	// IN or notIN
	private List<java.lang.Long>	inCriterionAuthorId;
	private List<java.lang.Long>	notInCriterionAuthorId;
	public void setInAuthorId(boolean isIn,List<java.lang.Long> authorIds){
		if(isIn){
			inCriterionAuthorId = authorIds;
		}else{
			notInCriterionAuthorId = authorIds;
		}
	}
	public List<java.lang.Long> getInAuthorId() {
		return inCriterionAuthorId;
	}
	public List<java.lang.Long> getNotInAuthorId() {
		return notInCriterionAuthorId;
	}
	
	//Null or NotNull
	private Boolean nullCriterionAuthorId;
	public void setNullAuthorId(boolean isNull){
			nullCriterionAuthorId = isNull;
	}
	public Boolean getNullAuthorId(){
		return nullCriterionAuthorId;
	} 
	
	private java.lang.Integer ltCriterionCategoryId;
	public void setLtCategoryId(java.lang.Integer categoryId){
		ltCriterionCategoryId = categoryId;
	}
	public java.lang.Integer getLtCategoryId(){
		return ltCriterionCategoryId;
	}
	private java.lang.Integer leCriterionCategoryId;
	public void setLeCategoryId(java.lang.Integer categoryId){
		leCriterionCategoryId = categoryId;
	}
	public java.lang.Integer getLeCategoryId(){
		return leCriterionCategoryId;
	}
	private java.lang.Integer gtCriterionCategoryId;
	public void setGtCategoryId(java.lang.Integer categoryId){
		gtCriterionCategoryId = categoryId;
	}
	public java.lang.Integer getGtCategoryId(){
		return gtCriterionCategoryId;
	}
	private java.lang.Integer geCriterionCategoryId;
	public void setGeCategoryId(java.lang.Integer categoryId){
		geCriterionCategoryId = categoryId;
	}
	public java.lang.Integer getGeCategoryId(){
		return geCriterionCategoryId;
	}
	public java.lang.Integer getCategoryId() {
		return this.categoryId;
	}
	
	public void setCategoryId(java.lang.Integer value) {		
		this.categoryId = value;
		this.isCategoryId = true;
	}
	public boolean hasCategoryId() {
		return this.isCategoryId;
	}
	public java.lang.Integer getNotEqCategoryId() {
		return this.notEqCategoryId;
	}
	public void setNotEqCategoryId(java.lang.Integer categoryId) {
		this.notEqCategoryId = categoryId;
		this.isNotEqCategoryId = true;
	}
	public boolean hasNotEqCategoryId() {
		return this.isNotEqCategoryId;
	}
	// IN or notIN
	private List<java.lang.Integer>	inCriterionCategoryId;
	private List<java.lang.Integer>	notInCriterionCategoryId;
	public void setInCategoryId(boolean isIn,List<java.lang.Integer> categoryIds){
		if(isIn){
			inCriterionCategoryId = categoryIds;
		}else{
			notInCriterionCategoryId = categoryIds;
		}
	}
	public List<java.lang.Integer> getInCategoryId() {
		return inCriterionCategoryId;
	}
	public List<java.lang.Integer> getNotInCategoryId() {
		return notInCriterionCategoryId;
	}
	
	//Null or NotNull
	private Boolean nullCriterionCategoryId;
	public void setNullCategoryId(boolean isNull){
			nullCriterionCategoryId = isNull;
	}
	public Boolean getNullCategoryId(){
		return nullCriterionCategoryId;
	} 
	
	private List<String> listOrderAsc = new ArrayList<>();
	private List<String> listOrderDesc = new ArrayList<>();

	public void setOrderAsc(String fdName) {
		listOrderAsc.add(fdName);
	}

	public void setOrderDec(String fdName) {
		listOrderDesc.add(fdName);
	}

	public List<String> getOrderAscList() {
		return listOrderAsc;
	}

	public List<String> getOrderDecList() {
		return listOrderDesc;
	}
	
	
	/**
	 * 获取查询条件
	 */
	public Specification<Blog> createSpecification() {
		Specification<Blog> example = (root, query, criteriaBuilder) -> {
			List<Order> orders = new ArrayList<>();
			for (String asc : this.getOrderAscList()) {
				orders.add(criteriaBuilder.asc(root.get(asc)));
			}
			for (String desc : this.getOrderDecList()) {
				orders.add(criteriaBuilder.desc(root.get(desc)));
			}
			query.orderBy(orders);
			List<Predicate> predicates = createQuery(root, this, criteriaBuilder);
			hookQuery(root, criteriaBuilder,predicates);
			return query.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction();
		};
		return example;
	}
	/**
	 * <p>
	 * <p>自定义的方法时候实现此方法即可(内部类方式使用即可)
	 * <p>使用方法: predicates.add(criteriaBuilder.equal(root.get("biaoqian").as(String.class), "value"));
	 * @param root
	 * @param query
	 * @param criteriaBuilder
	 * @param predicates
	 */
	public void hookQuery(Root<Blog> root, CriteriaBuilder criteriaBuilder,List<Predicate> predicates) {}
	/**
	 * 组装query对象
	 * 
	 * @param root
	 * @param BlogQuery
	 * @param criteriaBuilder
	 * @return
	 */
	private List<Predicate> createQuery(Root<Blog> root, BlogQuery query, CriteriaBuilder criteriaBuilder) {
		List<Predicate> predicates = new ArrayList<Predicate>();
		/**
		 * idExpression
		 */
		Expression<java.lang.Long> idExpression = root.get(Blog.PROP_ID).as(java.lang.Long.class);
		if (query.hasId()) {
			java.lang.Long value = query.getId();
			if( value != null){
				predicates.add(criteriaBuilder.equal(idExpression, value));					
			}
		}
		if (query.hasNotEqId()) {
			java.lang.Long value = query.getNotEqId();
			predicates.add(criteriaBuilder.notEqual(idExpression, value));
		}
		
		if(query.getLeId()!=null){
			predicates.add(criteriaBuilder.le(idExpression, query.getLeId()));
		}
		if(query.getGeId()!=null){
			predicates.add(criteriaBuilder.ge(idExpression, query.getGeId()));
		}
		if(query.getLtId()!=null){
			predicates.add(criteriaBuilder.lt(idExpression, query.getLtId()));
		}
		if(query.getGtId()!=null){
			predicates.add(criteriaBuilder.gt(idExpression, query.getGtId()));
		}
		
		if (query.getInId() != null) {
			predicates.add(idExpression.in(query.getInId()));
		}
		if (query.getNotInId() != null) {
			predicates.add(criteriaBuilder.not(idExpression.in(query.getInId())));
		}
		if (query.getNullId() != null) {
			if (query.getNullId()) {
				predicates.add(criteriaBuilder.isNull(idExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(idExpression));
			}
		}
		/**
		 * contentExpression
		 */
		Expression<java.lang.String> contentExpression = root.get(Blog.PROP_CONTENT).as(java.lang.String.class);
		if (query.hasContent()) {
			java.lang.String value = query.getContent();
			if (query.getLikeContent() != null) {
				predicates.add(criteriaBuilder.like(contentExpression, query.getLikeContent().toMatchString(value)));
			} else {
				predicates.add(criteriaBuilder.equal(contentExpression, value));
			}
		}
		if (query.hasNotEqContent()) {
			java.lang.String value = query.getNotEqContent();
			predicates.add(criteriaBuilder.notEqual(contentExpression, value));
		}
		
		if (query.getInContent() != null) {
			predicates.add(contentExpression.in(query.getInContent()));
		}
		if (query.getNotInContent() != null) {
			predicates.add(criteriaBuilder.not(contentExpression.in(query.getInContent())));
		}
		if (query.getNullContent() != null) {
			if (query.getNullContent()) {
				predicates.add(criteriaBuilder.isNull(contentExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(contentExpression));
			}
		}
		/**
		 * createTimeExpression
		 */
		Expression<java.time.LocalDateTime> createTimeExpression = root.get(Blog.PROP_CREATE_TIME).as(java.time.LocalDateTime.class);
		if(query.hasCreateTimeBegin() && query.getCreateTimeBegin()!= null){
			if(!query.hasCreateTimeEnd() || query.getCreateTimeEnd() == null){
				predicates.add(criteriaBuilder.greaterThan(createTimeExpression, query.getCreateTimeBegin()));
			}else{
				predicates.add(criteriaBuilder.between(createTimeExpression, query.getCreateTimeBegin(), query.getCreateTimeEnd()));
			}			
		}
		if(query.hasCreateTimeEnd() && query.getCreateTimeEnd()!=null){
			if(!query.hasCreateTimeBegin() || query.getCreateTimeBegin() == null){
				predicates.add(criteriaBuilder.lessThan(createTimeExpression, query.getCreateTimeBegin()));
			}
		}							
		if (query.hasCreateTime()) {
			java.time.LocalDateTime value = query.getCreateTime();
			if( value != null){
				predicates.add(criteriaBuilder.equal(createTimeExpression, value));					
			}
		}
		if (query.hasNotEqCreateTime()) {
			java.time.LocalDateTime value = query.getNotEqCreateTime();
			predicates.add(criteriaBuilder.notEqual(createTimeExpression, value));
		}
		
		if (query.getInCreateTime() != null) {
			predicates.add(createTimeExpression.in(query.getInCreateTime()));
		}
		if (query.getNotInCreateTime() != null) {
			predicates.add(criteriaBuilder.not(createTimeExpression.in(query.getInCreateTime())));
		}
		if (query.getNullCreateTime() != null) {
			if (query.getNullCreateTime()) {
				predicates.add(criteriaBuilder.isNull(createTimeExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(createTimeExpression));
			}
		}
		/**
		 * featuredExpression
		 */
		Expression<java.lang.Integer> featuredExpression = root.get(Blog.PROP_FEATURED).as(java.lang.Integer.class);
		if (query.hasFeatured()) {
			java.lang.Integer value = query.getFeatured();
			if( value != null){
				predicates.add(criteriaBuilder.equal(featuredExpression, value));					
			}
		}
		if (query.hasNotEqFeatured()) {
			java.lang.Integer value = query.getNotEqFeatured();
			predicates.add(criteriaBuilder.notEqual(featuredExpression, value));
		}
		
		if(query.getLeFeatured()!=null){
			predicates.add(criteriaBuilder.le(featuredExpression, query.getLeFeatured()));
		}
		if(query.getGeFeatured()!=null){
			predicates.add(criteriaBuilder.ge(featuredExpression, query.getGeFeatured()));
		}
		if(query.getLtFeatured()!=null){
			predicates.add(criteriaBuilder.lt(featuredExpression, query.getLtFeatured()));
		}
		if(query.getGtFeatured()!=null){
			predicates.add(criteriaBuilder.gt(featuredExpression, query.getGtFeatured()));
		}
		
		if (query.getInFeatured() != null) {
			predicates.add(featuredExpression.in(query.getInFeatured()));
		}
		if (query.getNotInFeatured() != null) {
			predicates.add(criteriaBuilder.not(featuredExpression.in(query.getInFeatured())));
		}
		if (query.getNullFeatured() != null) {
			if (query.getNullFeatured()) {
				predicates.add(criteriaBuilder.isNull(featuredExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(featuredExpression));
			}
		}
		/**
		 * privacyExpression
		 */
		Expression<java.lang.Integer> privacyExpression = root.get(Blog.PROP_PRIVACY).as(java.lang.Integer.class);
		if (query.hasPrivacy()) {
			java.lang.Integer value = query.getPrivacy();
			if( value != null){
				predicates.add(criteriaBuilder.equal(privacyExpression, value));					
			}
		}
		if (query.hasNotEqPrivacy()) {
			java.lang.Integer value = query.getNotEqPrivacy();
			predicates.add(criteriaBuilder.notEqual(privacyExpression, value));
		}
		
		if(query.getLePrivacy()!=null){
			predicates.add(criteriaBuilder.le(privacyExpression, query.getLePrivacy()));
		}
		if(query.getGePrivacy()!=null){
			predicates.add(criteriaBuilder.ge(privacyExpression, query.getGePrivacy()));
		}
		if(query.getLtPrivacy()!=null){
			predicates.add(criteriaBuilder.lt(privacyExpression, query.getLtPrivacy()));
		}
		if(query.getGtPrivacy()!=null){
			predicates.add(criteriaBuilder.gt(privacyExpression, query.getGtPrivacy()));
		}
		
		if (query.getInPrivacy() != null) {
			predicates.add(privacyExpression.in(query.getInPrivacy()));
		}
		if (query.getNotInPrivacy() != null) {
			predicates.add(criteriaBuilder.not(privacyExpression.in(query.getInPrivacy())));
		}
		if (query.getNullPrivacy() != null) {
			if (query.getNullPrivacy()) {
				predicates.add(criteriaBuilder.isNull(privacyExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(privacyExpression));
			}
		}
		/**
		 * statusExpression
		 */
		Expression<java.lang.Integer> statusExpression = root.get(Blog.PROP_STATUS).as(java.lang.Integer.class);
		if (query.hasStatus()) {
			java.lang.Integer value = query.getStatus();
			if( value != null){
				predicates.add(criteriaBuilder.equal(statusExpression, value));					
			}
		}
		if (query.hasNotEqStatus()) {
			java.lang.Integer value = query.getNotEqStatus();
			predicates.add(criteriaBuilder.notEqual(statusExpression, value));
		}
		
		if(query.getLeStatus()!=null){
			predicates.add(criteriaBuilder.le(statusExpression, query.getLeStatus()));
		}
		if(query.getGeStatus()!=null){
			predicates.add(criteriaBuilder.ge(statusExpression, query.getGeStatus()));
		}
		if(query.getLtStatus()!=null){
			predicates.add(criteriaBuilder.lt(statusExpression, query.getLtStatus()));
		}
		if(query.getGtStatus()!=null){
			predicates.add(criteriaBuilder.gt(statusExpression, query.getGtStatus()));
		}
		
		if (query.getInStatus() != null) {
			predicates.add(statusExpression.in(query.getInStatus()));
		}
		if (query.getNotInStatus() != null) {
			predicates.add(criteriaBuilder.not(statusExpression.in(query.getInStatus())));
		}
		if (query.getNullStatus() != null) {
			if (query.getNullStatus()) {
				predicates.add(criteriaBuilder.isNull(statusExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(statusExpression));
			}
		}
		/**
		 * summaryExpression
		 */
		Expression<java.lang.String> summaryExpression = root.get(Blog.PROP_SUMMARY).as(java.lang.String.class);
		if (query.hasSummary()) {
			java.lang.String value = query.getSummary();
			if (query.getLikeSummary() != null) {
				predicates.add(criteriaBuilder.like(summaryExpression, query.getLikeSummary().toMatchString(value)));
			} else {
				predicates.add(criteriaBuilder.equal(summaryExpression, value));
			}
		}
		if (query.hasNotEqSummary()) {
			java.lang.String value = query.getNotEqSummary();
			predicates.add(criteriaBuilder.notEqual(summaryExpression, value));
		}
		
		if (query.getInSummary() != null) {
			predicates.add(summaryExpression.in(query.getInSummary()));
		}
		if (query.getNotInSummary() != null) {
			predicates.add(criteriaBuilder.not(summaryExpression.in(query.getInSummary())));
		}
		if (query.getNullSummary() != null) {
			if (query.getNullSummary()) {
				predicates.add(criteriaBuilder.isNull(summaryExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(summaryExpression));
			}
		}
		/**
		 * tagsExpression
		 */
		Expression<java.lang.String> tagsExpression = root.get(Blog.PROP_TAGS).as(java.lang.String.class);
		if (query.hasTags()) {
			java.lang.String value = query.getTags();
			if (query.getLikeTags() != null) {
				predicates.add(criteriaBuilder.like(tagsExpression, query.getLikeTags().toMatchString(value)));
			} else {
				predicates.add(criteriaBuilder.equal(tagsExpression, value));
			}
		}
		if (query.hasNotEqTags()) {
			java.lang.String value = query.getNotEqTags();
			predicates.add(criteriaBuilder.notEqual(tagsExpression, value));
		}
		
		if (query.getInTags() != null) {
			predicates.add(tagsExpression.in(query.getInTags()));
		}
		if (query.getNotInTags() != null) {
			predicates.add(criteriaBuilder.not(tagsExpression.in(query.getInTags())));
		}
		if (query.getNullTags() != null) {
			if (query.getNullTags()) {
				predicates.add(criteriaBuilder.isNull(tagsExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(tagsExpression));
			}
		}
		/**
		 * titleExpression
		 */
		Expression<java.lang.String> titleExpression = root.get(Blog.PROP_TITLE).as(java.lang.String.class);
		if (query.hasTitle()) {
			java.lang.String value = query.getTitle();
			if (query.getLikeTitle() != null) {
				predicates.add(criteriaBuilder.like(titleExpression, query.getLikeTitle().toMatchString(value)));
			} else {
				predicates.add(criteriaBuilder.equal(titleExpression, value));
			}
		}
		if (query.hasNotEqTitle()) {
			java.lang.String value = query.getNotEqTitle();
			predicates.add(criteriaBuilder.notEqual(titleExpression, value));
		}
		
		if (query.getInTitle() != null) {
			predicates.add(titleExpression.in(query.getInTitle()));
		}
		if (query.getNotInTitle() != null) {
			predicates.add(criteriaBuilder.not(titleExpression.in(query.getInTitle())));
		}
		if (query.getNullTitle() != null) {
			if (query.getNullTitle()) {
				predicates.add(criteriaBuilder.isNull(titleExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(titleExpression));
			}
		}
		/**
		 * viewsExpression
		 */
		Expression<java.lang.Integer> viewsExpression = root.get(Blog.PROP_VIEWS).as(java.lang.Integer.class);
		if (query.hasViews()) {
			java.lang.Integer value = query.getViews();
			if( value != null){
				predicates.add(criteriaBuilder.equal(viewsExpression, value));					
			}
		}
		if (query.hasNotEqViews()) {
			java.lang.Integer value = query.getNotEqViews();
			predicates.add(criteriaBuilder.notEqual(viewsExpression, value));
		}
		
		if(query.getLeViews()!=null){
			predicates.add(criteriaBuilder.le(viewsExpression, query.getLeViews()));
		}
		if(query.getGeViews()!=null){
			predicates.add(criteriaBuilder.ge(viewsExpression, query.getGeViews()));
		}
		if(query.getLtViews()!=null){
			predicates.add(criteriaBuilder.lt(viewsExpression, query.getLtViews()));
		}
		if(query.getGtViews()!=null){
			predicates.add(criteriaBuilder.gt(viewsExpression, query.getGtViews()));
		}
		
		if (query.getInViews() != null) {
			predicates.add(viewsExpression.in(query.getInViews()));
		}
		if (query.getNotInViews() != null) {
			predicates.add(criteriaBuilder.not(viewsExpression.in(query.getInViews())));
		}
		if (query.getNullViews() != null) {
			if (query.getNullViews()) {
				predicates.add(criteriaBuilder.isNull(viewsExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(viewsExpression));
			}
		}
		/**
		 * authorIdExpression
		 */
		Expression<java.lang.Long> authorIdExpression = root.get(Blog.PROP_AUTHOR_ID).as(java.lang.Long.class);
		if (query.hasAuthorId()) {
			java.lang.Long value = query.getAuthorId();
			if( value != null){
				predicates.add(criteriaBuilder.equal(authorIdExpression, value));					
			}
		}
		if (query.hasNotEqAuthorId()) {
			java.lang.Long value = query.getNotEqAuthorId();
			predicates.add(criteriaBuilder.notEqual(authorIdExpression, value));
		}
		
		if(query.getLeAuthorId()!=null){
			predicates.add(criteriaBuilder.le(authorIdExpression, query.getLeAuthorId()));
		}
		if(query.getGeAuthorId()!=null){
			predicates.add(criteriaBuilder.ge(authorIdExpression, query.getGeAuthorId()));
		}
		if(query.getLtAuthorId()!=null){
			predicates.add(criteriaBuilder.lt(authorIdExpression, query.getLtAuthorId()));
		}
		if(query.getGtAuthorId()!=null){
			predicates.add(criteriaBuilder.gt(authorIdExpression, query.getGtAuthorId()));
		}
		
		if (query.getInAuthorId() != null) {
			predicates.add(authorIdExpression.in(query.getInAuthorId()));
		}
		if (query.getNotInAuthorId() != null) {
			predicates.add(criteriaBuilder.not(authorIdExpression.in(query.getInAuthorId())));
		}
		if (query.getNullAuthorId() != null) {
			if (query.getNullAuthorId()) {
				predicates.add(criteriaBuilder.isNull(authorIdExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(authorIdExpression));
			}
		}
		/**
		 * categoryIdExpression
		 */
		Expression<java.lang.Integer> categoryIdExpression = root.get(Blog.PROP_CATEGORY_ID).as(java.lang.Integer.class);
		if (query.hasCategoryId()) {
			java.lang.Integer value = query.getCategoryId();
			if( value != null){
				predicates.add(criteriaBuilder.equal(categoryIdExpression, value));					
			}
		}
		if (query.hasNotEqCategoryId()) {
			java.lang.Integer value = query.getNotEqCategoryId();
			predicates.add(criteriaBuilder.notEqual(categoryIdExpression, value));
		}
		
		if(query.getLeCategoryId()!=null){
			predicates.add(criteriaBuilder.le(categoryIdExpression, query.getLeCategoryId()));
		}
		if(query.getGeCategoryId()!=null){
			predicates.add(criteriaBuilder.ge(categoryIdExpression, query.getGeCategoryId()));
		}
		if(query.getLtCategoryId()!=null){
			predicates.add(criteriaBuilder.lt(categoryIdExpression, query.getLtCategoryId()));
		}
		if(query.getGtCategoryId()!=null){
			predicates.add(criteriaBuilder.gt(categoryIdExpression, query.getGtCategoryId()));
		}
		
		if (query.getInCategoryId() != null) {
			predicates.add(categoryIdExpression.in(query.getInCategoryId()));
		}
		if (query.getNotInCategoryId() != null) {
			predicates.add(criteriaBuilder.not(categoryIdExpression.in(query.getInCategoryId())));
		}
		if (query.getNullCategoryId() != null) {
			if (query.getNullCategoryId()) {
				predicates.add(criteriaBuilder.isNull(categoryIdExpression));
			} else {
				predicates.add(criteriaBuilder.isNotNull(categoryIdExpression));
			}
		}
		return predicates;
	}
	public String toString() {
		return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
	}
	
}

